1. Field of the Invention
The present invention relates to integrated circuit card (xe2x80x9csmart cardxe2x80x9d)-based systems and methods, and more particularly, to smart card-based systems having a command queuing functionality for queuing command(s) received from application(s) external to the smart card that cannot be immediately processed for delayed processing or execution of such queued commands. The present invention has utility in mobile telephone communication systems, wide area networked computer communication systems, point-of-sale terminals and other integrated circuit card applications.
2. Background
In general, smart cards are integrated circuit cards that form a part of a circuit or system when engaged with a smart card interface device such as a card reader, an automated teller machine, a vending machine, or a mobile telephone handset. The complexity of smart cards varies from being little more than a device allowing the storage and retrieval of information, to those having microprocessors and substantial memory. Their uses are numerous, including for example, communication devices such as mobile telephones, computer security devices, and financial transaction cards for use in automated teller machines and the like.
The prior art includes a number of patents and other references generally related to information processing and integrated circuit cards and to the queuing of commands in multi-tasking operating systems. These include the following, the teachings and disclosure of which can be referenced as background to the invention described herein:
U.S. Pat. No. 6,212,576: Operating System Interface for use with Multi-tasking GSM Protocol Stacks;
U.S. Pat. No. 6,009,454: Multi-tasking Operation System for Industrial Controller;
U.S. Pat. No. 4,847,751: Multi-task Execution Control System;
U.S. Pat. No. 4,652,990: Protected Software Access Control Apparatus and Method;
WO019,9448 A1: Method for Processing and Transmitting Data on a Mobile Telephone Network and Microchip Onboard System;
WO015,2575 A1: Representation of Applications in a Telecommunication System;
WO014,3472 A1: Safe Information Interchange between a user of a Terminal and a SIM Application Toolkit via WAP.
The computational resources of almost all commercial smart cardsxe2x80x94computing power, storage capacity and communication bandwidthxe2x80x94are greatly limited. A typical commercial smart card has a xc2xd million instruction per second (MIP) processor, 1 kilobyte of random access memory (RAM) and can communicate at 9600 bits per second. This situation has lead to smart card standards and usage protocols that require that each command sent to a smart card be completely executed and processed before the smart card is able to receive another command. In the situation in which a smart card was used for a single purpose and served only one application, this was not an unduly onerous constraint because only this application had to wait for its commands to be processed and the card devoted all of its modest resources to the processing of the commands from this single application.
In the ever-more-frequent situation where a smart card is used simultaneously for multiple purposesxe2x80x94for example, in a mobile phone, to authorize access to a mobile network, to pay for received multi-media entertainment, to provide digital rights management for this media and even perhaps to accumulate loyalty points for consuming the entertainmentxe2x80x94the xe2x80x9csingle-threadedxe2x80x9d behavior of the smart card may represent a system bottleneck, where several different applications must wait in line to have each of their commands completely processed before the smart card can consider other commands from the same application, or any commands from another application.
This bottleneck may cause inconvenience beyond simply slowing down the overall transaction time in using the smart card. In the above noted situation, for example, the relatively simple network access application may have to wait for the comparatively complex procedure of the payment application to complete before it is able to re-authenticate the subscriber to the network. If the payment application takes too long and the re-authentication is not performed within rigid time parameters, the network may drop the connection to the mobile device.
Another pitfall of conventional smart card systems may occur when logical channels are employed. Logical channels allow applications to establish independent communication contexts with the smart card, while not violating the single command consideration limitation. For example, the smart card may use different cryptographic keys to encrypt the communication on each of the logical channels so that on other logical channels or any intermediate nodes cannot interpret communication between the smart card and the application on a particular logical channel. However, this approach, too, can be problematic when commands from independent applications executed on the different logical channels need to access the same file of the smart card, since the changing of a file""s contents may affect subsequent commands accessing the same file. In such a case, the combined suite of applications must be designed to carefully avoid such conflicts to avoid inconsistent results and command processing errors. Such coordinated behavior is virtually impossible to achieve because these applications are provided by wholly independent entitiesxe2x80x94a network operator, a financial institution, a media company and an airline in the above examplexe2x80x94and furthermore these smart card-accessing applications are not typically in communication with one another,
What is required, but unavailable in the prior art, is a smart card-based information processing system and method that allows for the concurrent consideration and processing of more than one command without the concomitant prior art processing errors and inconsistent data problems, and the contemporaneous processing and consideration of commands from more than one application, all the while giving the virtual effect of being compliant with a standard or protocol requiring the consideration of only one command at a time.
To overcome the noted deficiencies of the prior art, the present invention provides a method of processing commands in a smart card in an environment governed by a standard requiring that a smart card completely process a received command before accepting another command. In one practice of the invention, the method includes the steps of (1) receiving commands from at least one application external to the smart card; (2) processing a received command when it is received if it is capable of being immediately processed, and returning command processing response indicia to the application from which the command emanated; (3) placing a received command in a queue when it is not capable of being immediately processed, and returning command processing response indicia to the application from which the command emanated, the indicia comprising queue location information for each queued command; and (4) processing queued commands when the smart card is capable, and returning command processing response indicia to the source application from which the command emanated. The smart card, in turn, is adapted to receive and process a command while a previously received command is queued and unprocessed.
Another aspect of the present invention is a smart card-based information processing system. In one embodiment, the system includes (1) a smart card adapted to receive and process commands from one or more external applications, (2) a smart card interface device coupled to the smart card, and (3) at least one external application adapted to generate and transmit commands related to one or more application tasks to the smart card interface device. The smart card interface device is adapted to transmit commands and information between each external application and the smart card. The system is capable of executing command processing in an environment governed by a standard requiring that a smart card completely process a received command before accepting another command. The smart card itself is adapted to (1) process a received command when it is received if it is capable of being processed, and return command processing response indicia to the source application from which the command emanated; and (2) place a received command in a queue when it is not capable of being immediately processed, and return command processing response indicia to the source application from which the command emanated, the indicia comprising queue location information. The smart card is also adapted to (3) process queued commands when the smart card is capable, and return command processing response indicia to the application source from which the command emanated; and (4) receive and process a command while a previously received command is queued and unprocessed.